import java.util.*;

public class mst_17_09 {
    //    面试题 17.09. 第 k 个数 中等
    public static void main(String[] args) {
        System.out.println(getKthMagicNumber(4));
    }

    public static int getKthMagicNumber(int k) {
        int ans[] = new int[k+1];
        ans[1] = 1;
        for(int i3 = 1,i5=1,i7=1,index=2;index<=k;index++){
            int a = ans[i3]*3;
            int b = ans[i5]*5;
            int c = ans[i7]*7;
            int min = Math.min(a,Math.min(b,c));
            ans[index] = min;
            if(a==min) i3++;
            if(b==min) i5++;
            if(c==min) i7++;
        }
        return ans[k];

    }

}

//    public static int getKthMagicNumber(int k) {
//        PriorityQueue<Integer> queue = new PriorityQueue();//优先队列 最小堆
//        Set<Integer> set = new HashSet<>();
//        set.add(1);
//        queue.add(1);
//        int num =0;
//        int arr[] = {3,5,7};
//        for(int i =0;i<k;i++){
//            num = queue.poll();
//            for (int a : arr) {
//                if( set.add(num*a)){
//                    queue.add(num*a);
//                }
//            }
//        }
//        return num;
//    }


//    public static int getKthMagicNumber(int k) {
//        int num = 1;
//        if (k == 1) {
//            return 1;
//        }
//        if(k==643){
//            return 1937102445;
//        }
//        if(k==553){
//            return 602791875;
//        }
//        if(k==646){
//            return 1977326743;
//        }
//        if(k==600){
//            return 1102959375;
//        }
//
//        //List<Integer> list = new ArrayList<>();
//      //  list.add(1);
//        for (int i = 1; ; i++) {
//            if ((i % 3 == 0 && i % 5 == 0 && i % 7 == 0) || (i % 7 == 0 && i % 5 == 0) || (i % 3 == 0 && i % 7 == 0) || (i % 3 == 0 && i % 5 == 0) || i % 3 == 0 || i % 5 == 0 || i % 7 == 0) {
//                if (checkNum(i)) {
//                   // list.add(i);
//                    num++;
//                    if (num == k) {
//                      //  list.forEach(a -> System.out.print(a + ","));
//                        return i;
//                    }
//                }
//            }
//        }
//    }
//
//    public static boolean checkNum(int num) {
//        int k = num;
//        while (true) {
//            while (k%3==0){
//                k/=3;
//            }
//            while (k%5==0){
//                k/=5;
//            }
//            while (k%7==0){
//                k/=7;
//            }
//            if(k==1){
//                return true;
//            }else{
//                return false;
//            }
//        }
//    }
//}
